package com.rpframework.website.device.service;

import java.util.List;

import javax.annotation.Resource;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Service;

import com.aliyun.oss.common.comm.ServiceClient.Request;
import com.rpframework.core.BaseService;
import com.rpframework.utils.Pager;
import com.rpframework.website.device.dao.IPraiseDao;
import com.rpframework.website.device.domain.Praise;

@Service
public class PraiseService extends BaseService{
	public @Resource IPraiseDao iDao;
	
	public Pager<Praise> getPager(Pager<Praise> pager) {
		long startTime = System.currentTimeMillis();
		List<Praise> list = iDao.doPager(this.packageMyBatisParam(pager));
		pager.setItemList(list);
		pager.setCostTime(System.currentTimeMillis() - startTime);
		return pager;
	}

	public boolean doSaveOrUpdate(Praise t) {
		t.setCreateTime(System.currentTimeMillis()/1000);
		return iDao.insert(t);
	}

	public List<Praise> queryAll() {
		return iDao.queryAll();
	}

//	/**
//	 * 更改实体状态 正常或禁用
//	 * */
//	public boolean doUpdateState(Integer id) {
//		if(NumberUtils.isValid(id)){
//			Praise t = iDao.select(id);
//			if(t.getState() == HConstants.EntityState.STATE_NORMAL){
//				t.setState(HConstants.EntityState.STATE_DISABLE);
//			}else{
//				t.setState(HConstants.EntityState.STATE_NORMAL);
//			}
//			t.setModifyTime(System.currentTimeMillis()/1000);
//			return iDao.update(t);
//		}
//		return false;
//	}
	/**
	 * 点赞总数
	 * @param type 相关表  1 feedback 2 employee 3hobbiespublish
	 * @param relativeId 相关表的id 
	 * @return
	 * @time 2016年2月19日 下午1:47:46
	 */
	public Integer priceCount(Integer relativeId,Integer type,Integer status){
		Integer i = iDao.doPriceCount(relativeId,type,status);
		return i == null ? 0 : i;
	}
	/**
	 * 返回1表示可以点赞，2表示不能点赞
	 * 相关id type关联的表 userId当前用户
	 * @param id
	 * @param type
	 * @param userId
	 * @return
	 * @time 
	 */
	public Integer isPraiseByUser(Integer id, Integer type, Integer userId) {
		Integer i = iDao.doIsPraise(id,type,userId);
		return i == null||i < 1 ? 1 : 2 ;
	}
	/**
	 * 点赞 取消赞 取消兴趣 关注
	 * @param id
	 * @param type
	 * @param userId
	 * @return
	 * @time
	 */
	public Boolean PraiseByUser(Integer id, Integer type, Integer userId,Integer status) {
		Praise t = iDao.doPraiseByUser(id,type,userId,status);
		boolean f = false;
		if(t!=null){
			if(t.getState()==1){
				t.setState(2);
			}else{
				t.setState(1);
			}
			t.setModifyTime(System.currentTimeMillis()/1000);
			f = iDao.update(t);
		}else{
			t = new Praise();
			t.setRelativeId(id);
			t.setType(type);
			t.setUserId(userId);
			t.setCreateTime(System.currentTimeMillis()/1000);
			t.setState(2);//默认为2 第一次请求视为点赞，设为2不可点赞
			t.setStatus(status);
			f = iDao.insert(t);
		}
		return f;
	}

	
}
